<?php
namespace Admin\Model;//命名空间 防止重名
use Think\Model;//自动加载核心控制器类
class AboutModel extends Model {
    // protected $patchValidate = true;  //批量验证
    public $cjl_data = array();  //定义公有属性，便于迁移。


    // 数据验证可以进行数据类型、业务规则、安全判断等方面的验证操作。
    // 数据验证有两种方式：
    // 1. 静态方式：在模型类里面通过$_validate属性定义验证规则。
    // 2. 动态方式：使用模型类的validate方法动态创建自动验证规则。
    // 无论是什么方式，验证规则的定义是统一的规则，定义格式为：
    // array(
    // array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),
    // array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]),
    // ......
    // );
     
    protected $_validate = array(
        // array(验证字段1【对说明字段进行验证 对什么数据进行验证】,验证规则【符合说明规则 正则 函数名】,错误提示,[验证条件【字段符合什么条件的时候 就验证】,附加规则【补充验证规则】,验证时间【什么时候验证 新增的时候 修改的时候】]),
        //编辑的时候 验证时间为 空 3 全部验证 2 
        array('introduction','is_empty','请输入菜单栏名称',1,'function'),
        array('advantage','is_empty','请输入菜单栏名称',1,'function'),
        array('history','is_empty','请输入菜单栏名称',1,'function'),
        //1 代表必须 用 function函数 is_empty  验证 验证的字段为：username，验证失败则报错：用户名格式错误   
        //function函数验证，定义的验证规则是一个函数名
    );
 

    //自动完成通常用来完成默认字段写入，安全字段过滤以及业务逻辑的自动处理等，和自动验证的定义方式类似，自动完成的定义也支持静态定义和动态定义两种方式。
    ////1. 静态方式：在模型类里面通过$_auto属性定义处理规则。
    ///2. 动态方式：使用模型类的auto方法动态创建自动处理规则。
    
    protected $_auto = array(
        // array(完成字段1,完成规则,[完成条件【什么时间完成 添加1 修改2 任意时候3】,附加规则]),
        array('c_time','time',1,'function'),
        array('u_time','time',3,'function'), 
    );

    //自动完成是ThinkPHP提供用来完成数据自动处理和过滤的方法，使用create方法创建数据对象的时候会自动完成数据处理
    public function cjl_add(){
        $res = $this->create($this->cjl_data,1);//验证数据是否符合规则【自动验证】 符合规则后 加上自动完成，处理好数据  1代表添加
        // 验证成功 返回要插入数据库的字段 并且会把存入$this->data 里面
        // 验证失败 返回false 可以通过 $this->getError() 得到报错信息 还可以通过 $this->error

        if(!$res){
            return false;
        }
        //验证成功
        $res = $this->add();
        return $res;//成功返回 ID  失败返回 false
    }

    public function cjl_save(){
        $res = $this->create($this->cjl_data,2);//2 代表的是 编辑的时候
        if(!$res){
            return false;            
        }
        //验证成功
        $res = $this->save();
        return $res;//成功返回 受影响行数 失败 返回false
    }


}